Flash memory is a type of memory used for non-volatile computer storage. Flash memory does not require power to maintain the information stored on the chip. However, over time, a charge distribution in cells in a flash memory may change. Therefore, a reference voltage (Vref) used to read a value from a location in a flash memory whose charge distribution has changed may need to be changed. Changing Vref may facilitate avoiding complications from the shifting charge distribution. Charge stored in the flash memory cell directly affects the threshold voltage (Vth) of the cell. Subsequently, charge distribution change results in threshold voltage distribution change.
Flash memory stores information in an array of memory cells made from floating gate transistors. A single level cell (SLC) device stores one bit of information per cell while a multi-level cell (MLC) device stores more than one bit per cell. Flash memory stores data by programming the cell to different threshold voltage (Vth) values. In a one bit/cell flash (SLC), flash cells have two nominal Vth while in a two bits/cell flash, cells have four nominal Vth values. Both SLC and MLC devices may experience charge distribution shift and thus Vref adaptation may be desired for both types of devices. FIG. 1 illustrates charge distribution shifts in an SLC device. The solid lines labeled T1 illustrate the charge distribution before cycling and data retention while the dotted lines labeled T2 illustrate the charge distribution after cycling and data retention. FIG. 2 illustrates charge distribution shifts in an MLC device. Once again solid lines illustrate charge distribution before cycling and data retention and dotted lines illustrate charge distribution after cycling and data retention.
Data that originally was stored properly and read correctly may, over time, be susceptible to being read incorrectly due to the changing charge distribution. FIG. 3 illustrates an overlap between charge distributions. The overlap is the area where bit errors may be experienced due to charge distribution shift. Region E01 represents an area where a zero may be incorrectly read as a one and region E10 represents an area where a one may be incorrectly read as a zero. The position of Vref along with the Vth distributions will determine the regions E01 and E10.
Charge distributions are a function of factors including, but not limited to, program/erase (PE) cycling count, read operation times, and data retention time. Data retention time concerns how long it has been since a cell was programmed. Charge distribution is a function of data retention time due to charge leakage over time. Cells that were programmed at a similar time may benefit from using a similar Vref that is adapted to account for the data retention time. However, conventionally it has been difficult, if even possible at all, to store and/or use information concerning when a cell(s) was programmed.
Improved system performance can be achieved by minimizing decoding failures and unrecoverable sector errors. Tracking charge distribution and using an adapted corresponding Vref is one way to help achieve improved system performance. Blocks in flash memory devices may have similar PE cycling counts due to wear leveling. Therefore, the PE cycling count effect on charge distribution changes may be mitigated as Vref is adapted. During reads, the Vref for a cell or even a block of cells may be automatically adapted to track distribution charge shift. This automatic Vref adaptation for a cell(s) can also mitigate the PE cycling count effect on charge distribution drift.